"""
面向对象的三大特征是?

    封装, 继承, 多态

简述类的作用?类中可以有什么?

    # 可以把具有相同属性或特征封装起来多次调用
    # 有属性和方法 对象

简述 init,new 的作用及调用时机?

    __init__
    创建对象后默认被调用,用来初始化对象属性
    __init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去
    __new__
    作用: 创建类的实例并且返回
    触发: 创建类的实例的时候



什么是私有成员?私有成员的好处?

    私有成员:
    属性和方法只能在类的内部访问
    好处:
    对外隐藏其实现细节,对外提供访问


什么是继承?继承的分类?

    继承:(共性提取)
    通过继承子类可以拥有父类的资源(属性和方法),子类可以拥有自己的资源.
    分类:
    单继承, 多继承



什么是实例属性和类属性?类属性的特点?类属性的访问方式?

    class ClassName:
        def __init__(self):
            # 实例属性
            self.att1 = value1
        # 类属性
        class_attr = value



什么是类方法和静态方法?写一段代码进行阐明

手写一个简单的单例模式

异常的完整语法?

    语法:
    	捕获单个异常的语法:
            try:
                可能发生异常的代码
            except 异常的类型:
                捕获到异常执行的代码
    	捕获多个异常的语法:
    		# 第一种
            try:
                可能发生异常的代码
            except (异常的类型1, 异常类型2, ...):
                发生异常执行的代码

            # 第二种
            try:
                可能发生异常的代码
            except 异常类型1:
                发生异常1,执行的代码
            except 异常类型2:
                发生异常2,执行的代码
            except ...:
                pass




什么是模块?什么是包?

    模块:
    一个模块中可以包含N多个函数
    在Python中一个扩展名为.py的文件就是一个模块
    包:
    包是一个分层次的目录结构，它将一组功能相近的模块组织在一个目录下



导入模块和包的方式有哪些?

    导入模块:
        import
        # 导入单个指定模块
        import 模块名
        # 导入多个指定模块
        import 模块名1, 模块名字2, 模块名3, ...
        # 导入模块并起别名
        import 模块名1 [as 模块1别名], 模块名2 [as 模块2别名,] ...

        from...import...
        # 导入模块下的指定资源
        from 模块名 import 资源名1 [as 别名], 资源名2, ...
        # 导入模块下的所有资源
        from 模块名 import *

    导入包:
        import
        import  包名.模块
    	# 包名.模块.资源名

        from...import...
        from 包.包.n import 模块1 [as 别名], 模块2 [as 别名], ...
        from 包[.包.n].模块 import 资源1 [as 别名], 资源2 [as 别名], ...
        from 包 import *
        # 使用*这种方式导入包下面的模块,必须在包的__init__.py这个文件中设置__all__属性进行指定才可以
        __all__ = ['模块1', '模块2', ...]



"""
